package com.heima.account.service;

import com.heima.modules.po.AccountPO;
import com.heima.modules.po.OrderPO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
//name：
//含义：指定服务的名称。在使用服务发现时，name 用于定位注册中心中对应的服务。
//示例：name = "hitch-storage-server"，表示要调用的服务名称为 hitch-storage-server。
//path：
//含义：指定服务的路径前缀。可以将该路径与 @RequestMapping 注解的路径结合使用。
//示例：path = "/storage/account"，表示服务的路径前缀为 /storage/account，后续通过 @RequestMapping 定义的接口路径将拼接在这个前缀之后。
//contextId：
//含义：用于 Feign 客户端的上下文 ID，主要用于防止不同客户端之间的冲突。在同一个项目中，如果有多个 @FeignClient 注解的客户端，可以使用 contextId 来区分它们。
//示例：contextId = "account"，表示这个 Feign 客户端的上下文 ID 为 account。
//url：
//含义：指定服务的具体 URL 地址。通常用于绕过服务发现机制，直接调用服务。
//示例：url = "http://localhost:8080"。注意：如果使用服务发现（如 Eureka 或 Nacos），则不需要配置 url。
@FeignClient(name = "hitch-storage-server", path = "/storage/account", contextId = "account")
public interface AccountAPIService {
    /**
     * 账户注册
     *
     * @param accountPO
     * @return
     */
    @RequestMapping("/register")
    public AccountPO register(@RequestBody AccountPO accountPO);


    /**
     * 账户修改
     *
     * @param record
     */
    @RequestMapping("/update")
    public void update(@RequestBody AccountPO record);

    /**
     * 获取账户信息
     *
     * @param id
     * @return
     */
    @RequestMapping("/getAccountByID/{id}")
    public AccountPO getAccountByID(@PathVariable("id") String id);

    /**
     * 检查登录
     *
     * @param accountPO
     * @return
     */
    @RequestMapping("/checkLogin")
    public AccountPO checkLogin(@RequestBody AccountPO accountPO);

}
